Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.10.2013, 01:23
mue mue вне форума
Интересующийся
Отправить личное сообщение для mue Посмотреть профиль Найти все сообщения от mue
 
Регистрация: 15.11.2011
Сообщений: 24

websocket роутинг на сервере
Для части single page app решил использовать websocket.
Столкнулся с проблемой, не могу найти качественную реализацию роутинга запросов клиента на стороне сервера.

При CRUD операциях, с websocket'ами получается головняк, как уведометь клиента про результат запроса. Получается каждый запрос клиента надо маркировать каким то id, что бы клиент знал на какой запрос это ответ.

Вижу реально удобное использование только когда необходимо с сервера что-то присылать постоянно.
Примерно такая последовательность, клиент уведомляет сервер, что хочет получать какие то данные, постоянно получает, и может отписаться от рассылки.

Что думаете? Кто то использовал websocket больше чем для чата.
Есть ли примеры организации single page на базе websocket'ов ?
Ответить с цитированием
  #2 (permalink)  
Старый 01.10.2013, 14:38
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

Сообщение от mue Посмотреть сообщение
Получается каждый запрос клиента надо маркировать каким то id, что бы клиент знал на какой запрос это ответ.
да так собственно везде и делается. а что вас пугает?..
Ответить с цитированием
  #3 (permalink)  
Старый 01.10.2013, 22:01
Аватар для Madzi
Аспирант
Отправить личное сообщение для Madzi Посмотреть профиль Найти все сообщения от Madzi
 
Регистрация: 15.06.2013
Сообщений: 38

А в чём преимущества WebSocket для single page приложения ? Перед тем же REST API ?
Ответить с цитированием
  #4 (permalink)  
Старый 02.10.2013, 14:05
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

как по мне, сингл-пейдж можно на чем угодно организовать, это вопрос личной религии.
если не нужно интерактивности, я бы делал аякс запросы к пхп-скриптам на получение нужного контента.
Ответить с цитированием
  #5 (permalink)  
Старый 02.10.2013, 14:40
mue mue вне форума
Интересующийся
Отправить личное сообщение для mue Посмотреть профиль Найти все сообщения от mue
 
Регистрация: 15.11.2011
Сообщений: 24

>> А в чём преимущества WebSocket для single page приложения ? Перед тем же REST API ?
Преимущество существенное вижу только одно, - сервер без хаков может присылать данные без запроса со стороны клиента.

Сообщение от deivan Посмотреть сообщение
да так собственно везде и делается. а что вас пугает?..
Собственно начал разбирать с этой темой, и меня это как-то озадачило.
Сейчас остыл и в принципе действительно нормальный вариант.
Хотя в инете особо не нашел решений с реализацией запросов, с id и прочим.

На гитхабе есть несколько реализаций, но они не особо поддерживаются ни автором, ни сообществом.

Для поддержания формы начал писать реализацию для nodejs, с протоколом для общения jsonrpc.

Основная загвоздка, когда сервер хочет опросить всех или часть клиентов, то необходимо ждать пока все опрошенные клиенты ответят или пройдет какой то таймаут.
С клиентом все проще, у него только одно соеденение с сервером.
Ответить с цитированием
  #6 (permalink)  
Старый 03.10.2013, 11:27
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

Сообщение от mue Посмотреть сообщение
На гитхабе есть несколько реализаций, но они не особо поддерживаются ни автором, ни сообществом.
вы свято верите, что под вашу задачу добрый дядя уже придамал фреймворк?.. гггг...

напишите сами, это не особо сложно.

Сообщение от mue Посмотреть сообщение
Основная загвоздка, когда сервер хочет опросить всех или часть клиентов, то необходимо ждать пока все опрошенные клиенты ответят или пройдет какой то таймаут.
добро пожаловать в асинхронное программирование!
Ответить с цитированием
  #7 (permalink)  
Старый 03.10.2013, 11:27
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

Сообщение от deivan Посмотреть сообщение
если не нужно интерактивности, я бы делал аякс запросы к пхп-скриптам на получение нужного контента.
а я бы делал аякс-запросы к nodejs-серверу на получение нужного контента
Ответить с цитированием
  #8 (permalink)  
Старый 03.10.2013, 12:42
mue mue вне форума
Интересующийся
Отправить личное сообщение для mue Посмотреть профиль Найти все сообщения от mue
 
Регистрация: 15.11.2011
Сообщений: 24

Цитата:
вы свято верите, что под вашу задачу добрый дядя уже придамал фреймворк?.. гггг...
в основном все так и происходит
для стандартных задач, давно есть стандартные решения...

Цитата:
напишите сами, это не особо сложно.
собственно чем и занимаюсь)

Сейчас думаю есть ли смысл имитировать для обработчиков, такой же список аргументов как и для exprees на Nodejs.

Тоесть, когда обработчик обрабатывает какой-то роут, у него в параметрах было
function(req, res, next){...}

для того, чтобы этот обработчик мог отвечать как на ajax запросы, которые обрабатывает express, так и на запросы websocket сервера.
Еще удобной штукой было бы организация системы middleware как в express'e.

А на клиенте проверять, если socket соеденение не установленно, то пытаемся получить данные по ajax.

Или смысла нет?
Если на клиенте не будет сокет соеденения, то и ajax не пройдет ?

Последний раз редактировалось mue, 03.10.2013 в 12:46.
Ответить с цитированием
  #9 (permalink)  
Старый 03.10.2013, 12:45
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

Сообщение от mue Посмотреть сообщение
Если на клиенте не будет сокет соеденения, то и ajax не пройдет ?
если nodejs запущен за nginx'ом не самой последней версии, то сокет-соединения не будет. а http конечно же будет.
Ответить с цитированием
  #10 (permalink)  
Старый 03.10.2013, 12:56
mue mue вне форума
Интересующийся
Отправить личное сообщение для mue Посмотреть профиль Найти все сообщения от mue
 
Регистрация: 15.11.2011
Сообщений: 24

и я так понимаю, что это не одна проблема, тут еще описывают
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
node.js - ws & websocket Reflexion AJAX и COMET 1 09.04.2013 01:14
Получить результат выполнения скрипта на сервере в переменную ява gyper AJAX и COMET 5 19.11.2012 11:36
CouchDB - как от устанавливается на сервере? macdack Серверные языки и технологии 0 22.04.2012 17:09
Получить код js-скрипта, находящегося в файле на сервере RomanA Общие вопросы Javascript 4 04.04.2012 09:53
Написать скрипт, создающий ссылку на страницу, находящуюся на вашем сервере. Ирина Владимировна Общие вопросы Javascript 1 28.03.2012 19:02